AWS RedshiftのデータをQuickSightで可視化してみた
こんにちは、クラスメソッドのキム・ジェウク(Kim Jaewook)と申します。データベースのデータを可視化してみたらどうかと思って、AWS RedshiftのデータをQuickSightで可視化してみました。
IAM Roleを作成
まず、Redshiftで、S3ファイルの読み込むためには、権限が必要なので、IAMRoleを先に作成する必要があります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::*/*" }, { "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:*:983654105819:catalog", "arn:aws:glue:*:983654105819:database/spectrum", "arn:aws:glue:*:983654105819:table/spectrum/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "cloudwatch:PutMetricData" ], "Resource": [ "*" ] } ] }
まず、IamRoleの「ポリシー」で上のJsonコードを入れ、ポリシーを作成します。
そして、「ポリシーをアタッチします」ボタンを押して、イメージを同じポリシーを洗濯します。
- AWSGlueConsoleFullAccess
- cm-kimjaewook-redshift-role(先、Jsonで作成したポリシー)
Redshiftクラスターを作成して、「IAMロールの管理」に入って先、作成したIAMロールを追加ます。 Redshiftクラスターの作成は下を参考してください。
AWS Redshiftクラスターの作成
クラスターの構成はDefaultにしました。
データベースの設定は「マスターユーザー名」と、「マスターユーザーのパスワード」を設定して「クラスター作成」を押します。
少し待ってみるとクラスターの状態がAvailableになります。
続いて、エディタでクエリエディタを押した後、「データベースに接続」ボタンを押して、上のイメージどうりに入力してください。データベースユーザーは自分が設定したユーザー名を入力します。
データベースに接続したら、状態が「Connected」になり、左にはSelect databaseに「dev」が、Select schemaには「public」が現れます。
Redshiftのサンプルデータ
そして、Redshiftに入れるサンプルデータを用意します。自分はコロナの感染者のデータを持ってきました。
サンプルデータをもとにテーブルを作成します。そしてRunボタンを押すと、左に「quicksight_sample」 テーブルが追加されます。
copy public.quicksight_sample(city,date,numberofconfirmedcases) from 's3://redshift-s3file/csvfile_folder/korea_corona.csv' iam_role 'arn:aws:iam::先作成したロール/cm-kimjaewook-redshift-role-test' delimiter ',' IGNOREHEADER 1;
最後にs3にあるcsvファイルを読み込みテーブルにデータを追加します。
QuickSightの設定
QuickSightに入った後「新しいテータセット」を押して、Redshift(自動検出)を押します。
イメージどうり入力して「接続を検証」を押します。「検証済み」になったら「データソースを作成」ボタンを押します。
quicksight_sampleを選択します。
「データクエリを直接実行」を選択して「Visualize」ボタンを押したらデータセットが作成されます。
可視化テスト
自分がフィールドを選択し、グラフを作ることができます。